package persistencia;

import java.sql.*;
import controlador.Usuario;
import java.util.ArrayList;

/**
 *
 * @author JAVA
 */
import java.sql.*;
import controlador.*;
import Util.*;
import java.util.List;
import java.util.Collection;

public class PersistenciaAmigos {

    public static void altaAmistad(String usuarioAmigo, String usuario) {

        long lAhora = System.currentTimeMillis();
        Date d = new Date(lAhora);
        String fecha = Util.UtilFecha.fechaMySQL(d);

        Connection con = null;
        Statement st = null;

        try {
            PersistenciaConexion.crearConexion();
            int rowcount = st.executeUpdate("UPDATE  amigos SET usuarioAmigo = '" + usuarioAmigo + "' "
                    + "fechaRelacion='" + fecha + "' usuario=" + usuario + "estado='alta'");

        } catch (Exception e) {
            System.out.println("ERROR");

        } finally {
            PersistenciaConexion.cerrarConexion(con);
        }
    }

    /**
     * Obtiene una Lista con amigos de un usuario, pasandole su nick
     * @author Rafa
     */

    public static List<Usuario> consultaAmigos(String nick){
        String sql = "select usuarioAmigo from amigos where usuario ='"+nick+"'";
        Connection con = null;
        List<Usuario> listaAmigos = new ArrayList<Usuario>();
        try {
            con = PersistenciaConexion.crearConexion();
            Statement st = con.createStatement();
            ResultSet rs = st.executeQuery(sql);
            while (rs.next()) {
                Usuario usu = new Usuario();
                usu = PersistenciaUsuario.cargaUsuario(rs.getString("usuarioAmigo"));
                //annadimos amigo a la lista
                listaAmigos.add(usu);
            }

        } catch (Exception e) {
            System.out.println("Error a obtener la pelicula " + e.getMessage());
        }
        PersistenciaConexion.cerrarConexion(con);
        return listaAmigos;
    }

    public static Collection<Relacion> consultaRelaciones(String nick) {
        String sql = "select * from amigos where usuario ='" + nick + "'";
        Connection con = null;
        Collection<Relacion> listaRelaciones = new ArrayList();
        try {
            con = PersistenciaConexion.crearConexion();
            Statement st = con.createStatement();
            ResultSet rs = st.executeQuery(sql);
            while (rs.next()) {
                Relacion rel = new Relacion();
                rel.setUsuario(PersistenciaUsuario.cargaUsuario(rs.getString("usuarioAmigo")));
                rel.setFechaRelacion(rs.getDate("fechaRelacion"));

                listaRelaciones.add(rel);
            }

        } catch (Exception e) {
            System.out.println("Error a obtener la pelicula " + e.getMessage());
        }
        PersistenciaConexion.cerrarConexion(con);
        return listaRelaciones;
    }

    public static void bajaAmistad(String usuarioAmigo) {

        Connection con = null;
        Statement st = null;

        try {
            PersistenciaConexion.crearConexion();
            int rowcount = st.executeUpdate("UPDATE  amigos SET estado='baja' "
                    + "WHERE usuarioAmigo='" + usuarioAmigo + "'");
        } catch (Exception e) {
            System.out.println("ERROR");

        } finally {
            PersistenciaConexion.cerrarConexion(con);
        }
    }
}
